home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Extra 1996 #5
/
Amiga Plus Extra 1996 May.iso
/
editoren
/
musictex
/
metafontinput
/
musicgen.mf
< prev
next >
Wrap
Text File
|
1996-08-01
|
39KB
|
1,373 lines
apog_fact=0.75;
apog_nhh=apog_fact*nhh;
apog_nhh#=apog_fact*nhh#;
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% NOTENKOEPFE UND FAEHNCHEN %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%
%%notenkoepfe %
%%%%%%%%%%%%%%%
def drawnoteb(expr noteheadwidth, noteheadheight, theta_a, theta_b, theta_c,
width_a, width_b) =
% .l
penpos1(width_a, theta_a); % .2
% .r
penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l
% .r
penpos2(width_b, 180+theta_b); % .4
% .l
penpos4(width_b, theta_b); %
y1 = y3 = 0;
x2 = x4 = 1/2noteheadwidth;
x1l= 0; x3l = noteheadwidth; y2l = noteheadheight; y4l = -noteheadheight;
penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
rotatedaround((origin +1/2noteheadwidth*right),theta_c);
enddef;
def drawnotew(expr noteheadwidth, noteheadheight, theta_a, theta_b,
width_a, width_b) =
% .l
penpos1(width_a, theta_a); % .2
% .r
penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l
% .r
penpos2(width_b, 180+theta_b); % .4
% .l
penpos4(width_b, theta_b); %
y1l = y3l = 0;
x2l = x4l = 0.5noteheadwidth;
x1l= 0; x3l = noteheadwidth;
y2l = noteheadheight; y4l = -noteheadheight;
%%%% penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle);
%%%% pickup pencircle xscaled width_a yscaled width_b;
%%%% draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle);
fill (z1l{up}..z2l{right}..z3l{down}..z4l{left}..cycle); cullit;
unfill (z1r{up}..z2r{right}..z3r{down}..z4r{left}..cycle); cullit;
penlabels(1,2,3,4);
enddef;
%%%%%%%%%%%%%%%
% flags %
%%%%%%%%%%%%%%%
%
%
pickup pencircle scaled (0.1pt);
def penstrike text t =
forsuffixes e = l,r: path_.e:=t; endfor
if cycle path_.l: cyclestroke_
else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
%
%
def flagshape(suffix i) (expr width, height, thick, thin, shiftx, shifty,
flagsense) =
pair intersectionp; %
% % .1
penpos[i](thick,90); %
penpos[i+1](3thin,45); % .2
penpos[i+2](thin,0); %
penpos[i+3](thin,0); % .3
x[i] = shiftx-0.2pt; %
y[i]r = height+shifty; % .4
x[i+1] = shiftx+3/8width; %
y[i+1] = height+shifty - thick; %
x[i+2]r = shiftx+width;
y[i+2]r = height+shifty - 2thick;
y[i+3] = shifty;
x[i+3]r = shiftx+0.6width;
if i>1: intersectionp = z[i-2];
else : intersectionp = z[i+3];
fi;
if flagsense>0: penstrike
(z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
..z[i+1]e{z[i+1]e-z[i]e}
..z[i+2]e{down}..intersectionp);
else:
penstrike (counterclockwise
(z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
..z[i+1]e{z[i+1]e-z[i]e}
..z[i+2]e{down}..intersectionp)
reflectedabout ((0,h/2), (nhw,h/2))) ;
fi;
enddef;
%%%%%%%%%%%%%%%%%%%%%%
% song system limits %
%%%%%%%%%%%%%%%%%%%%%%
beginchar(14,0.5nhw#,0,0);
clear;
z1=(0,0);
z2=(0.5nhw,0);
z3=(1.5nhw,nhh);
penpos1(0.4pt,90);
penpos2(0.4pt,90);
penpos3(0.2pt,135);
penstroke (z1e--z2e{right+0.2up}..z3e);
endchar;
beginchar(15,0.5nhw#,0,0);
clear;
z1=(0,0);
z2=(0.5nhw,0);
z3=(1.5nhw,-nhh);
penpos1(0.4pt,90);
penpos2(0.4pt,90);
penpos3(0.2pt,45);
penstroke (z1e--z2e{right-0.2up}..z3e);
endchar;
%%%%%%%%%%%%%%%%
% 4 crescendos %
%%%%%%%%%%%%%%%%
for n:=1 upto 4:
beginchar(15+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#);
pickup pencircle scaled (0.4s);
draw (0,(0.5+0.1*n)*nhh)--(4*n*nhw,0)--(0,-(0.5+0.1*n)*nhh);
endchar;
endfor;
%%%%%%%%%%%%%%%%%%
% 4 decrescendos %
%%%%%%%%%%%%%%%%%%
for n:=1 upto 4:
beginchar(19+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#);
pickup pencircle scaled (0.4s);
draw (4*n*nhw,(0.5+0.1*n)*nhh)--(0,0)--(4*n*nhw,-(0.5+0.1*n)*nhh);
endchar;
endfor;
%%%%%%%%%%%%%%%
% accents %
%%%%%%%%%%%%%%%
% point au-dessus de la note
beginchar(24, nhw#, 1.0nhh#, 0.0nhh#);
clear;
pickup pencircle scaled 0.25nhh;
drawdot (0.5nhw, 0.2pt+1.15nhh);
endchar;
% point au-dessous de la note
beginchar(25, nhw#, 0.0nhh#, 1.0nhh#);
clear;
pickup pencircle scaled 0.25nhh;
drawdot (0.5nhw, -0.2pt-1.15nhh);
endchar;
% barre au-dessus de la note
beginchar(26, nhw#, 1.0nhh#, 0.0nhh#);
clear;
dely:=0.2pt+1.15nhh;
pickup penrazor scaled 0.15nhh rotated 90;
draw (0.0nhw, dely)--(1.0nhw, dely);
endchar;
% trait au-dessous de la note
beginchar(27, nhw#, 0.0nhh#, 1.0nhh#);
clear;
dely:=0.2pt+1.15nhh;
pickup penrazor scaled 0.15nhh rotated 90;
draw (0.0nhw, -dely)--(1.0nhw, -dely);
endchar;
% accent (pizz.) au-dessus de la note
beginchar(28, nhw#, 1.0nhh#, 0.0nhh#);
clear;
dely:=1.2nhh;
rayon:=0.2nhh;
z1=(0.5nhw,dely+rayon);
z2=(0.5nhw-rayon,dely);
z3=(0.5nhw,dely-0.45nhh);
z4=(0.5nhw+rayon,dely);
fill z1{left}..{down}z2--z3--z4{up}..{left}cycle;
endchar;
% accent (pizz.) au-dessous de la note
beginchar(29, nhw#, 0.0nhh#, 1.0nhh#);
clear;
rayon:=0.2nhh;
dely:=1.2nhh;
z1=(0.5nhw,dely+rayon);
z2=(0.5nhw-rayon,dely);
z3=(0.5nhw,dely-0.45nhh);
z4=(0.5nhw+rayon,dely);
fill (z1{left}..{down}z2--z3--z4{up}..{left}cycle)
rotatedaround ((0.5nhw,0),180);
endchar;
% accent (sforz.) au-dessus de la note
beginchar(30, nhw#, 1.5nhh#, 0.0nhh#);
clear;
z1=(1.2nhw,1.3nhh);
z2=(-0.2nhw,1.3nhh);
pickup pencircle scaled 0.5s;
draw z1--(x2,y2+0.3nhh);
draw z1--(x2,y2-0.3nhh);
endchar;
% accent (sforz.) au-dessous de la note
beginchar(31, nhw#, 0.0nhh#, 1.0nhh#);
clear;
z1=(1.2nhw,-1.3nhh);
z2=(-0.2nhw,-1.3nhh);
pickup pencircle scaled 0.5s;
draw z1--(x2,y2+0.3nhh);
draw z1--(x2,y2-0.3nhh);
endchar;
%%%%%%%%%%%%%%%
% breve %
%%%%%%%%%%%%%%%
beginchar(32, nhw#, 0.7nhh#, 0.7nhh#);
clear;
pickup pencircle scaled (4thinwidth);
draw (0,h)--(0,-d);
draw (w,h)--(w,-d);
fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle;
fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% volle Note -- quarter note -- noire %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(33, nhw#, .5nhh#, .5nhh#);
w:=w+2thinwidth;
drawnoteb(w, h, 0, 90, 20, w/2, nhh/2);
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% halbe Note -- half note -- blanche %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(34, nhw#, .5nhh#, .5nhh#);
w:=w+2thinwidth;
drawnoteb(w, h, 0, 90, 20, 3*thinwidth, nhh/4);
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ganze Note -- whole note -- ronde %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(35,1.5nhh#, .5nhh#, .5nhh#);
drawnotew(w, h, 0, 30, nhh/3, 3.5*thinwidth);
endchar;
%%%%%%%%%%%%%%%
% semi-breve %
%%%%%%%%%%%%%%%
beginchar(36, 2nhw#, 0.7nhh#, 0.7nhh#);
clear;
pickup pencircle scaled (4thinwidth);
draw (0,h)--(0,-d);
draw (w,h)--(w,-d);
fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle;
fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% volle kleine Note -- small quarter note %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(37, apog_fact*nhw#, .50*apog_nhh#, .50*apog_nhh#);
w:=apog_fact*nhw;
w:=w+2thinwidth;
drawnoteb(w, h, 0, 90, 20, w/2, apog_nhh/2);
endchar;
%%%%%%%%%%%%%%%
%% halbe Note %
%%%%%%%%%%%%%%%
beginchar(38, apog_fact*nhw#, apog_fact*0.5nhh#, apog_fact*0.5nhh#);
w:=w+2thinwidth;
drawnoteb(w, h, 0, 90, 20, 3*thinwidth, apog_nhh/4);
endchar;
%%%%%%%%%%%%%%%
%% ganze Note %
%%%%%%%%%%%%%%%
beginchar(39, 1.5*apog_nhh#, apog_fact*0.5nhh#, apog_fact*0.5nhh#);
drawnotew(w, h, 0, 30, apog_nhh/3, 3.5*thinwidth*apog_fact);
endchar;
%
% general parameters for flags
%
flagw:=0.8*nhw;
flagthick:=nhh;
flagthin:=5thinwidth;
%
def cflag (expr sense) =
pickup pencircle scaled (0.1pt);
flagshape(1, flagw, h, flagthick, flagthin, 0, 0, sense);
enddef;
def ccflag (expr sense) =
pickup pencircle scaled (0.1pt);
flagshape(1, flagw, 2.50flagthick, 2/3flagthick, flagthin,
0, 0, sense);
flagshape(5, flagw, 2.25flagthick, 2/3flagthick, flagthin,
0, flagthick, sense);
enddef;
def cccflag (expr sense) =
ccflag(sense);
flagshape(9, flagw, 2.25flagthick, 2/3flagthick, flagthin,
0, 1.75flagthick, sense);
enddef;
def ccccflag (expr sense) =
cccflag(sense);
flagshape(13, flagw, 2.25flagthick, 2/3flagthick, flagthin,
0, 2.50flagthick, sense);
enddef;
def cccccflag (expr sense) =
ccccflag(sense);
flagshape(17, flagw, 2.25flagthick, 2/3flagthick, flagthin,
0, 3.25flagthick, sense);
enddef;
%%%%%%%%%%%%%%%%%%%%%%
% "8flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%
flagw:=0.8*nhw;
beginchar(40, 0, 3nhh#, 0);
clear;
cflag(1);
w:=0;
endchar;
% idem mais avec barre (appogiature)
beginchar(12, 0, 3nhh#, 0);
clear;
cflag(1);
pickup pencircle scaled 4thinwidth;
clear;
w:=nhw;
x1=-0.25w; y1=0.6nhh; x2=1.1w; y2=y1+0.6*(x2-x1);
draw z1--z2;
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "16flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(41, 0, 3.25nhh#, 0);
clear;
ccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "32flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(42, 0, 4.00nhh#, 0);
clear;
cccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "64flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(43, 0, 4.75nhh#, 0);
clear;
ccccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%
%% "128flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(44, 0, 5.50nhh#, 0);
clear;
cccccflag(1);
w:=0;
endchar;
flagw:=1.0*nhw; % flags up should be wider
%%%%%%%%%%%%%%%%%%%%%%
%% "8flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%
beginchar(45, 0, 3nhh#, 0);
clear;
cflag(-1);
w:=0;
endchar;
% idem mais avec barre (appogiature)
beginchar(13, 0, 3nhh#, 0);
clear;
cflag(-1);
pickup pencircle scaled 4thinwidth;
clear;
w:=nhw;
x1=-0.25w; y1=1.6nhh; x2=1.2w; y2=y1+0.6*(x2-x1);
draw z1--z2;
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
%% "16flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(46, 0, 3.25nhh#, 0);
clear;
ccflag(-1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
%% "32flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(47, 0, 4.00nhh#, 0);
clear;
cccflag(-1);
w := 0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
%% "64flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(48, 0, 4.75nhh#, 0);
clear;
ccccflag(-1);
w := 0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "128flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(49, 0, 5.50nhh#, 0);
clear;
cccccflag(-1);
w := 0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% VERSETZUNGSZEICHEN %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%
% "flat" %
%%%%%%%%%%%%
def flat (expr reduction,shiftx,flatsense) =
clear; flatraise:=0; %
penpos4(8/24reduction*nhh,0);%/5,20 % 1
penpos3(reduction*nhh/8,-90);%/5,20 %
penpos6(reduction*nhh/7, 90);%/5,20 %
penpos2(reduction*nhh/8, 90);%/5,20 % 6 \
y1 = 1.5*reduction*nhh+flatraise; % / 4
x1=x2=x5 = reduction*s; x4 = reduction*(nhw-s); % 2 /
y4 = 0.1reduction*s+flatraise; % /
y3l = flatraise-0.5*reduction*nhh; %35
y2l = 0.5y4; y5=y3;
x3=x5-1.5thinwidth;
y6r=0.5*reduction*nhh+flatraise; x6=(x2+x4)/2;
currentpen:= pencircle scaled 3thinwidth;
if flatsense>0:
penstroke
(z2e..{right}z6e{right}..{down}z4e{down}..{left+down}z3e)
shifted (shiftx,flatraise);
cullit;
draw (z1--z5) shifted (shiftx,flatraise);
penlabels (1,2,3,4,5);
else:
penstroke (counterclockwise (
(z2e..{right}z6e{right}..{down}z4e{down}..{3left+2down}z3e)
reflectedabout(z1,z5)))
shifted (shiftx,flatraise);
cullit;
draw (z1--z5) shifted (shiftx,flatraise);
fi; cullit;
enddef;
%
beginchar(50, nhw#, 2nhh#, 2nhh#);
flat (1.0, 0, 1);
endchar;
%
%%%%%%%%%%
%% "bb" %
%%%%%%%%%%
beginchar(51,1.7nhw#, 2nhh#, 2nhh#);
flat (1.0, 0, 1); cullit; clear;
flat (1.0, 0.7nhw, 1);
endchar;
%%%%%%%%%%%%%
% "sharp" %
%%%%%%%%%%%%%
def sharp ( expr reduction ) =
clear;
penpos3(3/8reduction*nhh,90);
penpos4(3/8reduction*nhh,90);
penpos5(3/8reduction*nhh,90);
penpos6(3/8reduction*nhh,90);
y1 + y2 = -0.5reduction*s; y1 - y2 = 2h - reduction*s;
x1 = x2 = reduction*s; y3 = 1/4reduction*nhh;
y4l = y3r; x3= 0; x4 = 0.8*reduction*nhw;
y5 = -y4; y6 = -y3; x5 = x3; x6 = x4;
x7 = w-x1 ; x8 = w-x2; y7=-y1; y8=-y2;
currentpen:= pencircle scaled 3thinwidth;
draw z1--z2;
draw z7--z8;
penstroke z3e--z4e;
penstroke (z5e--z6e) ;
penlabels(1,2,3,4,5,6,7,8);
enddef;
%
beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#);
sharp(1.0);
endchar;
%
%%%%%%%%%%
%% "xx" %
%%%%%%%%%%%
beginchar(53, nhw#, .5nhw#, .5nhw#);
clear;
z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w);
z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w);
currentpen:= pencircle scaled .2nhh;
draw z1--z4; draw z3--z2;
currentpen:= pensquare scaled .30w;
drawdot z1; drawdot z2; drawdot z3; drawdot z4;
endchar;
%%%%%%%%%%%%%%%
% "natural" %
%%%%%%%%%%%%%%%
def natural =
clear;
reduction:=w/(0.8*nhw);
penpos3(3/8reduction*nhh,90);
penpos4(3/8reduction*nhh,90);
penpos7(3/8reduction*nhh,90);
penpos8(3/8reduction*nhh,90);
x1 = x2 = x3 = x7 = 0.75*reduction*s-1.5thinwidth;
x5 = x6 = x4 = x8 = w-x1;
y1 = h; y3 = 0.30reduction*nhh ;
y4l = y3r-0.5*reduction*s ;
y6 = -y1; y5 = -y2;
y7l = y2;
y7 = -y4; y8 = -y3;
currentpen:= pencircle scaled 3thinwidth;
draw (z1--(x2,y2+1.5thinwidth)) shifted (1.5thinwidth,0);
draw ((x5,y5-1.5thinwidth)--z6) shifted (-1.5thinwidth,0);
penstroke z3e--z4e;
penstroke z7e--z8e;
penlabels(1,2,3,4,5,6,7,8);
enddef;
%
beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#);
natural;
endchar;
%
%%%%%%%%%%%%%%%%
%% "1/4 flat" %
%%%%%%%%%%%%%%%%
beginchar(55, nhw#, 2nhh#, 2nhh#);
flat (1.0, 0.65nhw,-1);
endchar;
%%%%%%%%%%%%%%%%
%% "3/4 flat" %
%%%%%%%%%%%%%%%%
beginchar(56, 1.7nhw#, 2nhh#, 2nhh#);
flat (1.0, 0.65nhw, -1); clear; cullit;
flat (1.0, 0.65nhw, 1);
endchar;
%
% Gregorian notes
%
beginchar(57, nhw#, .5nhh#, .5nhh#);
fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PAUSEN %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
%% "dp" %
%%%%%%%%%
beginchar(58,1/2nhw#, 3nhh#, 0);
clear;
penpos1(nhh,90);
penpos2(nhh,90);
y1r = y2r = h;
x1r = 0; x2r = w;
currentpen:= pencircle;
penstroke z1e--z2e;
labels(1,2);
endchar;
%%%%%%%%%%
%% "ddp" %
%%%%%%%%%%
beginchar(59,1/2nhw#, 3nhh#, 0);
clear;
penpos1(2nhh,90);
penpos2(2nhh,90);
y1r = y2r = h;
x1r = 0; x2r = w;
currentpen:= pencircle;
penstroke z1e--z2e;
labels(1,2);
endchar;
%%%%%%%%%%%%%%%%%%
%% "ganze Pause" %
%%%%%%%%%%%%%%%%%%
beginchar(60, nhw#, 3nhh#, 0);
clear;
penpos1(nhh/2,90);
penpos2(nhh/2,90);
y1r = y2r = h;
x1r = 0; x2r = w;
currentpen:= pencircle;
penstroke z1e--z2e;
endchar;
%
%%%%%%%%%%%%%%%%%%
%% "halbe Pause" %
%%%%%%%%%%%%%%%%%%
beginchar(61, nhw#, 2.5nhh#, 0);
clear;
penpos1(nhh/2,90);
penpos2(nhh/2,90);
y1r = y2r = h;
x1r = 0; x2r = w;
currentpen:= pencircle;
penstroke z1e--z2e;
endchar;
%%%%%%%%%%%%%%%%%%%%
%% "viertel Pause" %
%%%%%%%%%%%%%%%%%%%%
beginchar(62, nhw#, 4nhh#, 0); % .1
clear; % .2
thin := 1/8 nhh; thick := 1/2 nhh; % 8..3
alpha_a = -50; alpha_b = -50; % .4
penpos1 ( thin, (alpha_a+90)); % .5
penpos5 ( thin, alpha_b); % .6
penpos2 ( thick+thin, alpha_a ); %
penpos4 ( thick+thin, alpha_b ); % .7
penpos3 ( thick, 1/2(alpha_a+alpha_b));
x3r:=9/10[x3,x3r];
penpos8 ( thick, 1/2(alpha_a+alpha_b));
x8l:=9/10[x8,x8l];
penpos6 ( 2/3thick, alpha_b);
penpos7 ( thin, 45);
y1l = h - 2s;
x1l = 2s;
z2r = z1 +(nhh* right) rotated alpha_a;
z5 = z4l+(nhh* right) rotated alpha_b;
z3 = 1/3[z2,z4];
z8 = 2/3[z2,z4];
z4 = (w,h) scaled .55;
y6r = 1.45nhh;
x6l = x4l;
x7 = 0.9w; y7= nhh-thin;
z10= z5r shifted (0.36thin,0.36thin);
currentpen:= penrazor scaled thin rotated 45;
draw z1--z2r; draw z10--z4l;
cullit; penstroke z2e..z3e..z8e..z4e; pickup pencircle scaled thin;
% cullit; penstroke z5e{nw}..z6e..z7e; cullit;
cullit; penstroke z5e..z6e..{up+4right}z7e; cullit;
penlabels(1,2,3,4,5,6,7,8,9,10);
endchar;
%%%%%%%%%%%%%%%%%%%
%% "achtel Pause" %
%%%%%%%%%%%%%%%%%%%
beginchar(63, 2nhh#, 3nhh#, 0)
clear;
%punkte f"ur achtelpause, 16. und 32. Pause
x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
x3=1/2nhh; y3=10/4nhh;
z4-z3=(0.20nhh,0.35nhh);
currentpen := pencircle scaled 4thinwidth;
draw z1..z2;
currentpen := pencircle scaled(2*thinwidth);
draw z2..z3{up+left};
z5=z3;
filldraw z5..z4..z5..cycle;
penlabels (1,2,3,4,5);
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "sechzehntel Pause" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(64,2nhh#, 3nhh#, 0)
clear;
%punkte f"ur achtelpause, 16. und 32. Pause
x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
x3=1/2nhh; y3=10/4nhh;
z4-z3=(0.20nhh,0.35nhh);
%
x5=x2; y5=y2;
y6=0; x6=x5-1/3y5;
currentpen := pencircle scaled 4thinwidth;
draw z5..z6;
currentpen := pencircle scaled(2*thinwidth);
draw z2..z3{up+left};
draw z2..z3{up+left} shifted(-1/3nhh,-nhh);
filldraw z3..z4..z3..cycle;
filldraw z3..z4..z3..cycle shifted(-1/3nhh,-nhh);
penlabels(1,2,3,4,5,6);
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% "zweiunddreissigstel Pause" %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(65,2nhh#, 4nhh#, 0)
clear;
%punkte f"ur achtelpause, 16. und 32. Pause
x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
x3=1/2nhh; y3=10/4nhh;
z4-z3=(0.20nhh,0.35nhh);
%
x5=x2+1/6nhh; y5=y2+nhh;
y6=0; x6=x5-1/3y5;
currentpen := pencircle scaled 4thinwidth;
draw z5..z6;
currentpen := pencircle scaled(2*thinwidth);
draw z2..z3{up+left} shifted( 1/6nhh,nhh);
draw z2..z3{up+left} shifted(-1/6nhh, 0);
draw z2..z3{up+left} shifted(-3/6nhh,-nhh);
filldraw z3..z4..z3..cycle shifted( 1/6nhh, nhh);
filldraw z3..z4..z3..cycle shifted(-1/6nhh, 0);
filldraw z3..z4..z3..cycle shifted(-3/6nhh,-nhh);
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% "vierundsechzigstel Pause" %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(66,2nhh#, 5nhh#, 0)
clear;
%punkte f"ur achtelpause, 16. und 32. Pause
x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
x3=1/2nhh; y3=10/4nhh;
z4-z3=(0.20nhh,0.35nhh);
%
x5=x2+1/3nhh; y5=y2+2nhh;
y6=0; x6=x5-1/3y5;
currentpen := pencircle scaled 4thinwidth;
draw z5..z6;
currentpen := pencircle scaled(2*thinwidth);
draw z2..z3{up+left} shifted( 1/3nhh, 2nhh);
draw z2..z3{up+left} shifted( 0,nhh);
draw z2..z3{up+left} shifted(-1/3nhh, 0);
draw z2..z3{up+left} shifted(-2/3nhh,-nhh);
filldraw z3..z4..z3..cycle shifted( 1/3nhh, 2nhh);
filldraw z3..z4..z3..cycle shifted( 0, nhh);
filldraw z3..z4..z3..cycle shifted(-1/3nhh,0);
filldraw z3..z4..z3..cycle shifted(-2/3nhh,-nhh);
endchar;
%%%%%%%%%%%%%%%%%%%
% ornements %
%%%%%%%%%%%%%%%%%%%
beginchar (67, 2nhw#, nhh#, 0);
clear;
x1=0.2w; y1r=h; x6=w-x1; y6=h-y1;
x2r=0; y2=0.5h; x5=w-x2; y5=h-y2;
x3=0.22w; y3r=0; x4=w-x3; y4=h-y3;
pickup pencircle scaled 4thinwidth;
penpos1 (5thinwidth,90);
penpos2 (5thinwidth, 180);
penpos3 (0.2nhw, -40);
penpos4 (0.2nhw, -40);
penpos5 (5thinwidth, 180);
penpos6 (5thinwidth, 90);
penstroke (z1e..{down}z2e{down}..{right}z3e{right}..{right}z4e{right}..{down}z5e{down}..z6e) ;
pickup pencircle scaled 2s ;
drawdot (x1,y1r-s) ;
drawdot (x6,y6l+s) ;
penlabels(1,2,3,4,5,6);
endchar;
beginchar (68, 2nhw#, nhh#, 0);
clear;
x1=0.2w; y1r=0; x6=w-x1; y6=h-y1;
x2r=0; y2=0.5h; x5=w-x2; y5=h-y2;
x3=0.22w; y3r=h; x4=w-x3; y4=h-y3;
pickup pencircle scaled 4thinwidth;
penpos1 (5thinwidth,-90);
penpos2 (5thinwidth, -180);
penpos3 (0.2nhw, 40);
penpos4 (0.2nhw, 40);
penpos5 (5thinwidth, -180);
penpos6 (5thinwidth, -90);
penstroke (z1e..{up}z2e{up}..{right}z3e{right}..{right}z4e{right}..{up}z5e{up}..z6e);
pickup pencircle scaled 2s;
drawdot (x1,y1r+s);
drawdot (x6,y6l-s);
penlabels(1,2,3,4,5,6);
endchar;
%%%%%%%%%%%%%%%
% appogiature %
%%%%%%%%%%%%%%%
beginchar(69, apog_fact*nhw#, 3.5*apog_nhh#, .50*apog_nhh#);
clear;
w:=apog_fact*nhw;
flagshape(1,0.8w, 3*apog_nhh, apog_nhh, 4thinwidth, w, 0.5apog_nhh, 1);
clear;
w:=apog_fact*nhw;
drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
clear;
pickup pencircle scaled 4thinwidth;
w:=apog_fact*nhw;
draw (w-2thinwidth,0)--(w-2thinwidth,h);
x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6*(x2-x1);
draw z1--z2;
%
w:=apog_fact*nhw;
endchar;
beginchar(70, apog_fact*nhw#, 0.5apog_nhh#, 3.5*apog_nhh#);
clear;
w:=apog_fact*nhw;
flagshape(1,w, 3apog_nhh, apog_nhh, 4thinwidth, 0.2pt, apog_nhh, -1);
clear;
w:=apog_fact*nhw;
drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
pickup pencircle scaled 4thinwidth;
draw (2thinwidth,0)--(2thinwidth,-d);
clear;
w:=apog_fact*nhw;
x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6*(x2-x1);
draw z1--z2;
%
w:=apog_fact*nhw;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% NOTENSCHLUESSEL %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% VIOLINSCHLUESSEL %
%%%%%%%%%%%%%%%%%%%%
def violin(expr width, beginleft, begindown, thick, penthick) =
x10=x3=x2=x8;
y6l=56/15width+y12r;
x11-x4=width;
x5=x4+13/15width;
x2=x4+31/45 width;
x1=x4+7/15width;
x4=beginleft;
x2-x12=4/15 width;
x9+2/5width=x6;
x6-4/15width=x7;
x9=x4+1/5width;
y12r=begindown;
y2r=y4=2y11;
y8=y12r+4/15width;
y2r=y12r+28/15width;
y1=y12r+width;
y3r=y12r+13/15width;
y7=y12r+116/45width;
y5=y12r+16/5width;
y5-y10=y11;
y9=y12r+2/15width;
y13=y8; x13=x8-0.6s;
penpos1(0,180);
penpos2(thick,90);
penpos3(penthick+1/16thick,-90);
penpos4(5/4thick,120);
penpos5(5/6thick,-120);
penpos6(5/3thick,-85);
penpos7(1/2thick,0);
penpos8(penthick,0);
penpos13(penthick,0);
penpos9(5/4thick,170);
penpos10(5/6thick,180);
penpos11(thick,0);
penpos12(penthick,-90);
pickup pencircle scaled 1s;
%
% penstroke z1e{2left}..z2e..z11e..z3e
% ..z4e{right+up}..z10e..{up}z5e..z6e;
% penstroke z6e{down+left}..{down}z7e--z8e;
% fill z8l{2down+right}..z12l..z9l
% --z9r..z12r..{up}z8r..cycle;
% pickup pencircle scaled 1s;
% fill z9l{3/2right+up}..{right+2down}z9r..cycle;
penstroke z1e{2left}..z2e..z11e..z3e
..z4e{right+up}..z10e..{up}z5e..z6e;
penstroke z6e{down+left}..{down}z7e--z8e
{2down+right}..z12e..{2left+up}z9e;
pickup pencircle scaled 2.5s;
drawdot (x9+0.4s,y9+0.8s);
%
penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
enddef;
%
beginchar(71,3.25nhw#, 6nhh#, 2nhh#);
clear;
violin(15/8nhh,1.75nhh,-1.5nhh,0.4nhh,0.111nhh);
endchar;
%%%%%%%%violin-schluessel verkleinert%%%%%%%%
beginchar(72,2.60nhw#, 6nhh#, 2nhh#);
clear;
violin(12/8nhh,1.40nhh,-1.2nhh,0.32nhh,1/10nhh);
endchar;
%%%%%%%%%%%%%%%%%%%%%
% BASS--SCHLUESSEL %%
%%%%%%%%%%%%%%%%%%%%%
% clef de fa par D. Taupin %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def bass (expr reduction) =
clear;
x2=0.80*reduction*nhw; y2=3nhh;
x1=x2r+1.25*reduction*s; y1=y2;
x3=x2+0.71*reduction*nhw; y3=y2+reduction*nhh;
x4=x3+0.71*reduction*nhw; y4=y2-0.2*reduction*nhh;
x6=x2-6*reduction*thinwidth; y6=y2-2.2*reduction*nhh;
x7=x4+0.50*reduction*nhw; x8=x7;
y7=y2+0.38*reduction*nhh; y8=y2-0.38*reduction*nhh;
%
currentpen:=pencircle scaled (4*reduction*thinwidth);
penpos2(6*reduction*thinwidth,180);
penpos3(6*reduction*thinwidth, 90);
penpos4(0.5*reduction*nhh,0);
penpos6(0.1*reduction*nhh,-10);
penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+0.1down}z6e);
currentpen := pencircle scaled (0.4reduction*nhh);
pickup pencircle scaled (2*(x2r-x1));
drawdot z1;
pickup pencircle scaled 1.7s;
drawdot z7; drawdot z8;
penlabels(1,2,3,4,6);
enddef;
%
beginchar(73, 3nhw#, 4nhh#, 0);
bass(1.0);
endchar;
%%%%%%verkleinerter bass-schluessel%%%%%%%%%
beginchar(74, 2.4*nhw#, 4nhh#, 0);
bass(0.8);
endchar;
%%%%%%%%%%%%%%%%%%%
% ALT--SCHLUESSEL %
%%%%%%%%%%%%%%%%%%%
def alt(expr height, beginleft, begindown, thick) =
x1=x7;
x2=x8;
y1-y7=height;
y2-y8=height;
y7=begindown;
x7=beginleft;
x2=x1+1/4height;
x6l=x8l;
y5=y7+1/2height;
y9=y7+1/9height;
x5=x3;
y4=y5+0.120height;
x4-x7=height+3thinwidth;
x4-x5=1/2height+3thinwidth;
y3-y5=2/7height;
y8=y7;
y6=y7;
x9=0.62x5+0.38x4;
x10=x9; y10=y7+height;
x11=0.5x3+0.5x6; y11=y3; penpos11(1/2thick,0);
penpos8(1/4thick,180);
penpos2(1/4thick,180);
penpos1(thick,180);
penpos7(thick,180);
penpos6(thick,0);
penpos5(1/10thick,0);
penpos9(1/3thick,90);
penpos3(1/2thick,0);
penpos4(thick,180);
penpos10(1/3thick,-90);
pickup pencircle scaled 1s;
fill z7l--z1l--z1r--z7r--cycle;
fill z8l--z2l--z2r--z8r--cycle;
penstroke z5e..{left+2down}z6e;
penstroke z5e{right+4down}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e;
pickup pencircle scaled 1s;
penstroke
(counterclockwise(z7e--z1e)reflectedabout(z7,z8));
penstroke
(counterclockwise(z8e--z2e)reflectedabout(z7,z8));
penstroke
(counterclockwise(z5e..{left+2down}z6e)reflectedabout(z7,z8));
penstroke
(counterclockwise (z5e{right+4down}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e)
reflectedabout(z7,z8));
pickup pencircle scaled 2.5s;
drawdot (x3+0.1nhh, y3);
drawdot (x3+0.1nhh, 2y7-y3);
penlabels(1,2,3,4,5,6,7,8);
enddef;
%%%%%%%%%%%Altschl"usseL%%%%%%%%%%%
beginchar(75,3.5nhw#, 4nhh#, 0nhh#);
clear;
alt(2nhh,1.25nhh,2nhh,0.4nhh);
endchar;
%%%%%%%%%Verkleinerter Altschluessel%%%%%%%%%
beginchar(76,2.8nhw#, 4nhh#, 0nhh#);
clear;
alt(1.6nhh,1.00nhh,2nhh,0.32nhh);
endchar;
%%%%%%%%%Baritonschluessel%%%%%%%%%
beginchar(77,3.5nhw#, 4nhh#, 0nhh#);
clear;
alt(2nhh,1.25nhh,4nhh,2/5nhh);
endchar;
%%%%%%%%%Mezzosopranschluessel%%%%%%%%%
beginchar(78,3.5nhw#, 4nhh#, 0nhh#);
clear;
alt(2nhh,1.25nhh,1nhh,2/5nhh);
endchar;
%%%%%%%%%Sopranschluessel%%%%%%%%%
beginchar(79,3.5nhw#, 4nhh#, 0nhh#);
clear;
alt(2nhh,1.25nhh,0nhh,2/5nhh);
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% SONDERZEICHEN %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def alla_breve (expr trans) =
thin := 5thinwidth; thick := 1/2 nhh;
penpos1(thin, 0);
penpos2(thin, -90);
penpos3(thick,180);
penpos4(thin, 90);
penpos5(thin, 45);
penpos6(3/4thick,45);
2x2r = 2x4r = x1 + 2s = w;
x3r = 0; 2y1 = 3y2 = y4r = h;
y3r = 2/3h;
x5 = w -2s;
y5 = h -2s;
z6r = z5r;
penstroke (z1e..z2e..z3e..z4e..z5e) transformed trans;
currentpen := pencircle scaled (2/3thick);
drawdot z6;
enddef;
%%%%%%%%%%%%%%%
% "fermate1" %%
%%%%%%%%%%%%%%%
beginchar(80, 2nhw#, 1.25nhh#, 0);
clear;
penpos2(nhh/3,90);
penpos1(nhh/8,180);
penpos3(nhh/8,0);
penpos4(nhh/3,90);
y2r =1.2h;
z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0;
penstroke z1e..z2e..z3e;
currentpen:= pencircle scaled (nhh/3);
drawdot z4;
penlabels(1,2,3);
endchar;
%%%%%%%%%%%%%%%
% "fermate2" %%
%%%%%%%%%%%%%%%
beginchar(81, 2nhw#, 0, 1.25nhh#);
clear;
penpos2(nhh/3,-90);
penpos1(nhh/8,180);
penpos3(nhh/8,0);
penpos4(nhh/3,90);
y2r = -1.2d;
z1 = origin; 2x2l = 2x4 = x3 = w;
y4r = y3 = 0;
penstroke (z1e..z2e..z3e);
currentpen := pencircle scaled (nhh/3);
drawdot z4;
penlabels(1,2,3);
endchar;
%%%%%%%%%%%%%%%%
% "allabreve" %%
%%%%%%%%%%%%%%%%
beginchar(82, 2nhh#, 3nhh#, 0);
clear;
alla_breve(identity);
z7 = z4 + 2/16 h *up;
z8 = z2 + 2/16 h *down;
currentpen := pencircle scaled (thin);
draw z7--z8;
penlabels(1,2,3,4,5,6,7,8);
endchar;
%%%%%%%%
% "C" %%
%%%%%%%%
beginchar(83, 2nhh#, 3nhh#, 0);
clear;
alla_breve(identity);
endchar;
%%%%%%%%%%%%%%%
% "reverseC" %%
%%%%%%%%%%%%%%%
beginchar(84, 2nhh#, 3nhh#, 0);
clear;
transform T;
xxpart T = -yypart T; xypart T = yxpart T; % T is a reflection
(w/2,0) transformed T = (w/2,0); (w/2,1) transformed T = (w/2,1);
thin := 5thinwidth; thick := 1/2 nhh;
penpos1(thin, 0);
penpos2(thin, -90);
penpos3(thick,180);
penpos4(thin, 90);
penpos5(thin, 45);
penpos6(3/4thick,45);
2x2r = 2x4r = x1 + 2s = w;
x3r = 0; 2y1 = 3y2 = y4r = h;
y3r = 2/3h;
x5 = w -2s;
y5 = h -2s;
z6r = z5r;
penstroke (counterclockwise
(z1e..z2e..z3e..z4e..z5e) transformed T);
currentpen := pencircle scaled (2/3thick);
drawdot (z6 transformed T);
endchar;
%%%%%%%%%%%%%%%%%%
% repeat symbols %
%%%%%%%%%%%%%%%%%%
beginchar(85, 2nhw#, 3nhh#, 0);
clear;
x1=0.5w; y1=0.5h;
x2=0.5nhh; y2=y1;
x3=x1; y3=y1+nhh;
x4=2x1-x2; y4=2y1-y2;
x5=2x1-x3; y5=2y1-y3;
pickup pensquare xscaled thinwidth yscaled 4thinwidth;
draw (0,y1)--(w,y1);
pickup pensquare xscaled 4thinwidth yscaled thinwidth;
draw (x1,0)--(x1,h);
pickup pencircle xscaled 12thinwidth yscaled 4thinwidth;
draw z2..z3..z4..z5..cycle;
endchar;
beginchar(86, 3nhw#, 3nhw#, 0);
clear;
x1=0.5w; y1=0.5h;
x2=x1-0.1w; y2=y1+0.4h;
x3=2x1-x2; y3=2y1-y2;
x4=x1-0.3h; y4=y1-0.1h;
x5=2x1-x4; y5=2y1-y4;
x6=x1+0.25w; y6=y1+0.4h;
x7=2x1-x6; y7=2y1-y6;
pickup pencircle scaled 1.6s;
drawdot z2; drawdot z3;
pickup pencircle scaled s;
drawdot z4; drawdot z5;
z8l=z2+(0,0.8s); z9=2z1-z8;
penpos1 (1.8s,25);
penpos10 (1.8s,25);
penpos11 (1.8s,25);
penpos8 (0.5s,-90);
penpos9 (0.5s,-90);
z10=z1+(-s,s); z11=2z1-z10;
penstroke (z8e{left}..{right+down}z10e..z11e{right+down}..{left}z9e);
pickup penrazor scaled 0.8s;
draw z6--z7;
%
penlabels (1,2,3,4,5,6,7,8,9);
endchar;
%%%%%%%%%%%%%%%
% " pince" %
%%%%%%%%%%%%%%%
def pince =
clear;
x1-x3=x3-x5; y1=y3;
x2=1/8w; y2=8/10h;
x3=0.5w-x2; y3=h-y2;
x4=0.5w+x2; y4=y2;
x5=0.5w+x3; y5=y3;
x6=w-x1; y6=h-y1;
pickup pensquare xscaled 0.40nhh yscaled 0.1nhh rotated 52;
draw (z1--z2--z3--z4--z5--z6);
enddef;
%
beginchar(87, 1.2nhw#, 0.8nhh#, 0);
pince;
endchar;
%
beginchar(88, 1.8nhw#, 0.8nhh#, 0);
w:=2w/3;
pince;
draw (z4--z5--z6) shifted (z4-z2);
w:=1.8nhw;
endchar;
%%%%%%%%%%%%%%%
% "mordant" %
%%%%%%%%%%%%%%%
beginchar(89, 1.2nhw#, 0.8nhh#, 0);
pince;
pickup pencircle scaled (4thinwidth);
draw (0.5w,-0.4h)--(0.5w,1.4h);
endchar;
%%%%%%%%%%%%%%%
% arpeggio %%
%%%%%%%%%%%%%%%
def arpegel =
clear;
y1=0; x1=0.5w;
y2=0.3nhh; x2=8/10w;
y3=nhh-y2; x3=w-x2;
y4=nhh; x4=0.5w;
pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45;
draw (z1..z2..z3..z4);
enddef;
%
beginchar(90, 0.4nhw#, nhh#, 0);
arpegel;
endchar;
for jj=1 upto 9:
beginchar(90+jj, 0.4nhw#, (1+jj)*nhh#, 0);
arpegel;
for kk=1 upto jj:
draw (z1..z2..z3..z4) shifted (0,kk*nhh);
endfor;
endchar;
endfor;
%%%%%%%%%%%%%%%
% "trille" %%
%%%%%%%%%%%%%%%
def arp_elem =
clear;
x1=0; y1=0.5h;
x2=1/3nhw; y2=8/10h;
x3=nhw-x2; y3=h-y2;
x4=nhw; y4=0.5h;
pickup pencircle xscaled 0.33nhh yscaled 0.1nhh rotated 45;
draw (z1..z2..z3..z4);
enddef;
%
beginchar(100, nhw#, 0.45nhh#, 0);
arp_elem;
endchar;
%
for jj=1 upto 9:
beginchar(100+jj, (jj+1)*nhw#, 0.45nhh#, 0);
arp_elem;
for kk=1 upto jj:
draw (z1..z2..z3..z4) shifted (kk*nhw,0);
endfor;
endchar;
endfor;
%
% general parameters for small flags
%
flagw:=0.8*nhw*apog_fact;
flagthick:=nhh*apog_fact;
flagthin:=5thinwidth*apog_fact;
%%%%%%%%%%%%%%%%%%%%%%%
%% "8flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%
flagw:=0.8*nhw*apog_fact;
beginchar(110, 0, 3apog_nhh#, 0);
clear;
cflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "16flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(111, 0, 3.25apog_nhh#, 0);
clear;
ccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "32flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(112, 0, 4.00apog_nhh#, 0);
clear;
cccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "64flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(113, 0, 4.75apog_nhh#, 0);
clear;
ccccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%
%% "128flag nach unten" %
%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(114, 0, 5.50apog_nhh#, 0);
clear;
cccccflag(1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%
%% "8flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%
flagw:=1.0*nhw*apog_fact;
beginchar(115, 0, 3apog_nhh#, 0);
clear;
cflag(-1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
%% "16flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(116, 0, 3.25apog_nhh#, 0);
clear;
ccflag(-1);
w:=0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
%% "32flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(117, 0, 4.00apog_nhh#, 0);
clear;
cccflag(-1);
w := 0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
%% "64flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(118, 0, 4.75apog_nhh#, 0);
clear;
ccccflag(-1);
w := 0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%
%% "128flag nach oben" %
%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(119, 0, 5.50apog_nhh#, 0);
clear;
cccccflag(-1);
w := 0;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%
% kleine versetzungen %
%%%%%%%%%%%%%%%%%%%%%%%
beginchar(120, apog_fact*nhw#, 2apog_fact*nhh#, 2apog_fact*nhh#);
flat (apog_fact, 0, 1);
endchar;
beginchar(121,1.7*apog_fact*nhw#, 2*apog_fact*nhh#, 2*apog_fact*nhh#);
flat (apog_fact, 0, 1);cullit; clear;
flat (apog_fact, 0.7*apog_fact*nhw, 1);
endchar;
beginchar(122, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#);
sharp(apog_fact);
endchar;
beginchar(123, apog_fact*nhw#, .5nhw#, .5nhw#);
clear;
z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w);
z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w);
pwidth:=0.2*apog_fact*nhh;
currentpen:= pencircle scaled pwidth;
draw z1--z4; draw z3--z2;
currentpen:= pensquare scaled .30w;
drawdot z1; drawdot z2; drawdot z3; drawdot z4;
endchar;
beginchar(124, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#);
natural;
endchar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% volle Note mit | --> |O| %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
beginchar(125,1.5nhh#, .5nhh#, .5nhh#);
drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth);
pickup pensquare scaled 0.2w;
draw (-0.05w,-0.4nhh)--(-0.05w,0.4nhh);
draw (1.05w,-0.4nhh)--(1.05w,0.4nhh);
endchar;
%%%%%%%%%%%%%%%%%
% repeat colons %
%%%%%%%%%%%%%%%%%
beginchar(126,0.6nhh#, 4nhh#, 0);
pickup pencircle scaled 0.3nhh;
drawdot (0.3nhh, 1.5nhh);
drawdot (0.3nhh, 2.5nhh);
endchar;